纠结于[]struct还是[]*struct
直接make([]struct,0) 后append 还是 用sync.Pool make([]struct,100)
写段代码跑个分, 结论是
[]*struct的要比[]struct多n次取指针的内存分配, 所有更慢, 如果不用修改结构体元素内的值, 没有必要用指针切片- append
[]*struct要比[]struct慢 sync.Pool效果明显
benchmark结果
BenchmarkStructSliceWithoutPool-8 200000 5458 ns/op 16320 B/op 8 allocs/op |
benchmark代码
package main |